#ifndef CUSTOMITEMEDITOR_H
#define CUSTOMITEMEDITOR_H

#include <QItemDelegate>

class QComboBox;

class CustomItemEditor : public QItemDelegate
{
    Q_OBJECT
public:
    explicit CustomItemEditor(QObject *parent = 0);

    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;

    void setEditorData(QWidget *editor, const QModelIndex &index) const;
    void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;

    void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const;

private:
    void populateComboFromEnum(const QString& enumName, QComboBox* combo) const;
};

#endif // CUSTOMITEMEDITOR_H
